
#ifndef _MEMBER_BSCENE_H_
#define _MEMBER_BSCENE_H_

#include <BShape>
#include <BNode>
#include <BLight>
#include <BCamera>
#include <BScene>

#define scene_member(scene)		((member_BScene*)((BScene*)scene)->_ptr)

namespace BWE
{
	class member_BScene : public BObject
	{
		BOBJECT(member_BScene);
	public:
		member_BScene(BScene* scene);
		~member_BScene();

		void update(const BEvent& event);

		void slotNodeFresh(BObject* object);
		void slotShapeFresh(BObject* object);

		void slotNodeDirty(BObject* object);
		void slotShapeDirty(BObject* object);

		BScene*					boss;
		bool					refresh;
		bool					dirtySpace;
		BSpace					space;
		BArray<BShapeHolder>	shapes;
		BArray<BNodeHolder>		nodes;
		BArray<BLight*>			lights;
		BArray<BCamera*>		cameras;
	};
}
#endif
